tools/hotplug: add helper script to visualize systemd dependencies
authorOlaf Hering <olaf@aepfle.de>
Fri, 24 Oct 2014 14:17:10 +0000 (16:17 +0200)
committerIan Campbell <ian.campbell@citrix.com>
Mon, 27 Oct 2014 10:14:13 +0000 (10:14 +0000)
A small helper to draw a graph with dot(1) and show it with display(1):
bash tools/hotplug/Linux/systemd/show_service_dependencies.sh \
tools/hotplug/Linux/systemd/*.in

A red line means Requires= aka "enable it"
A blue line means After=
A green line means Before=

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Wei Liu <wei.liu2@citrix.com>
tools/hotplug/Linux/systemd/show_service_dependencies.sh [new file with mode: 0644]

diff --git a/tools/hotplug/Linux/systemd/show_service_dependencies.sh b/tools/hotplug/Linux/systemd/show_service_dependencies.sh
new file mode 100644 (file)
index 0000000..e3e4c68
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+# dot(1) from graphviz, display(1) from ImageMagick
+# Usage: bash $0 tools/hotplug/Linux/systemd/*.in
+(
+echo " digraph systemd {"
+for file in "$@"
+do
+       if test -f "$file"
+       then
+               unit=${file##*/}
+               unit=${unit%.in}
+               requires="`grep ^Requires= $file | cut -f 2- -d =`"
+               before="`grep ^Before= $file | cut -f 2- -d =`"
+               after="`grep ^After= $file | cut -f 2- -d =`"
+               echo "\"$unit\" [fillcolor=lightgray color=black fontcolor=black style=filled];"
+               for i in $requires
+               do
+                       echo "\"$i\" -> \"$unit\" [color=red];"
+               done
+               for i in $after
+               do
+                       echo "\"$i\" -> \"$unit\" [color=blue];"
+               done
+               for i in $before
+               do
+                       echo "\"$unit\" -> \"$i\" [color=green];"
+               done
+       fi
+done
+echo "}"
+) | dot -Tpng | display -